package com.example.websocket.controller;

import com.example.websocket.util.QueueHelper;
import com.example.websocket.util.TTHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.stream.Collectors;

@RestController
@RequestMapping("/home")
public class HomeController {

    @Autowired
    private  QueueHelper<String> queueHelper;
    @Autowired
    private TTHelper ttHelper;


    @RequestMapping("")
    public String index() {
        return "ok";
    }

    /**
     *
     *  add(e)       offer(e)
     *  remove()     poll()
     *  element()    peek()
     *
     *    element 返回队列头部的元素 如果队列为空，则抛出一个NoSuchElementException异常
     * 　　offer 添加一个元素并返回true 如果队列已满，则返回false
     * 　　poll 移除并返问队列头部的元素 如果队列为空，则返回null
     * 　　peek 返回队列头部的元素 如果队列为空，则返回null
     * 　　put 添加一个元素 如果队列满，则阻塞
     * 　　take 移除并返回队列头部的元素 如果队列为空，则阻塞
     *
     */
    @RequestMapping("/test")
    public String test() {
        Queue<String> query = new ConcurrentLinkedQueue<>();
        for (int i = 0; i < 100; i++) {
            String s = String.valueOf(i);
            query.offer(s);
            queueHelper.add(s);
        }
        String str = query.poll();

        List<String> lastList = query.stream().filter(b -> Integer.valueOf(b) > 50).collect(Collectors.toList());
        String s = lastList.get(0);

        String ss = queueHelper.get();

        return str;
    }
}
